DBGrid - zmena barvy textu

Otázka od: Petr BRABEC

8. 4. 2004 11:56

Dobry den,
muzete mi prosim nekdo poradit?

Potrebuji zmenit barvu fontu v DBGrid, pro kazdy radek zvlast dle hodnoty v
sloupci. Abych to priblizil

Databaze zakazniku obsahuje nejake zaznamy +- sloupec status zakaznika
Pokud je status = klicovy potom bych chtel cely radek zobrazit treba cervene,
pokud ma hodnotu blbec tak treba modrou, zbytek cernou.

Doufam, ze se mi to podarilo srozumitelne popsat. Potreboval bych nakopnout
spravnym smerem, protoze se mi to nedari.

Mam D5Std. Predem dekuji za kazdou radu.

Petr


Odpovedá: horky@cominn.cz

9. 4. 2004 8:54

> From: Petr BRABEC [mailto:petr@elra.cz]
> Sent: Thursday, April 08, 2004 12:46 PM

> Potrebuji zmenit barvu fontu v DBGrid, pro kazdy radek zvlast
> dle hodnoty v sloupci.

Toto uz tu bylo mnohokrat, prohlidni si archiv konference na www.delphi.cz

Dela se to pomoci uzivatelskeho vykreslovani, toto je jedno z reseni, ktere
jsem odnekud vycetl, meni to barvu pozadi podle hodnoty v sloupci:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
    if not(gdSelected in State) then
        case Table1.FieldByName('NumTickets').AsInteger of
            0 : TDBGrid(Sender).Canvas.Brush.Color := clYellow;
            1 : TDBGrid(Sender).Canvas.Brush.Color := clGray;
            2 : TDBGrid(Sender).Canvas.Brush.Color := clSilver;
            3 : TDBGrid(Sender).Canvas.Brush.Color := clRed;
            4 : TDBGrid(Sender).Canvas.Brush.Color := clGreen;
        end;
    TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]